package cn.stylefeng.guns.modular.hx.storage.model.params;

import cn.stylefeng.guns.modular.hx.storage.entity.HxStorageOut;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import lombok.Data;
import cn.stylefeng.guns.modular.hx.storage.model.result.HxStorageOutDetailedResult;
import cn.stylefeng.guns.modular.storage.model.result.StorageOutResult;
import cn.stylefeng.roses.kernel.model.validator.BaseValidatingParam;
import java.util.Date;
import java.util.List;

import com.baomidou.mybatisplus.annotation.TableField;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * <p>
 * 拣货单表
 * </p>
 * @author zhucx
 * @since 2023-09-05
 */
@Data
public class HxStorageOutParam implements Serializable, BaseValidatingParam {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    private Integer id;
    
    List<HxStorageOutDetailedParam> list;

    /**
     * 客户id
     */
    private Long customerId;

    /**
     * 客户名称
     */
    private String customerName;

    /**
     * 单据状态（待拣货、拣货中、待复核、复核中、已完成）
     */
    private String storageState;

    /**
     * 发车状态（未发车、已发车）
     */
    private String startState;

    private String[] storageState1;

    /**
     * 配送日
     */
    private String peisongTime;

    /**
     * 订单号
     */
    private String storageNumber;

    /**
     * 单据类型（STORE_OUT(门店调出),RETURN(采购退货),WHOLESALE(批发销售),ADJUST_OUT(调整出库),TRANSFER(仓间调拨)）
     */
    private String orderType;

    /**
     * 新零帮发货门店id
     */
    private String xlbSetUnitId;

    /**
     * 发货单位id
     */
    private Long setUnitId;

    /**
     * 发货单位
     */
    private String setUnit;

    /**
     * 新零帮发货仓库id
     */
    private String xlbSetWarehouseId;

    /**
     * 发货仓库id
     */
    private Long setWarehouseId;

    /**
     * 发货仓库
     */
    private String setWarehouse;

    /**
     * 新零帮收货客户id
     */
    private String xlbClientId;

    /**
     * 收货客户id
     */
    private Long getUnitId;

    /**
     * 收货门店编码
     */
    private String getUnitNumber;

    /**
     * 收货客户
     */
    private String getUnit;

    /**
     * 库区id
     */
    private Long areaId;

    /**
     * 库区
     */
    private String areaName;

    private List<String> areaNameList;

    /**
     * 商品数
     */
    private String goodsNum;

    /**
     * 应拣数量
     */
    private String outNum;

    /**
     * 实拣数量
     */
    private String realNum;

    /**
     * 体积
     */
    private String outVolume;

    /**
     * 是否拆零
     */
    private String scattered;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 创建人
     */
    private String createUserName;

    /**
     * 分拣员
     */
    private String storageUserName;

    /**
     * 分拣员
     */
    private String storageUser;

    /**
     * 分拣时间
     */
    private Date storageTime;

    /**
     * 分拣完成时间
     */
    private Date storageCompleteTime;

    /**
     * 复核员
     */
    private String qualityUserName;

    /**
     * 复核员
     */
    private String qualityUser;

    /**
     * 复核时间
     */
    private Date qualityTime;

    /**
     * 复核完成时间
     */
    private Date qualityCompleteTime;

    /**
     * 关联出库订单
     */
    private String associationOrder;

    /**
     * 打印次数
     */
    private String printNum;

    private String printNumb;

    private Date printNumbTime;

    /**
     * 托盘id
     */
    private Long trayId;

    /**
     * 托盘编号
     */
    private String trayNumber;

    private String oldTrayNumber;

    /**
     * 备货口
     */
    private String stockPort;

    private String oldStockPort;

    private String notStockPort;

    /**
     * 商品id
     */
    private Long goodsId;

    /**
     * 商品名称
     */
    private String goodsName;

    /**
     * 商品编号
     */
    private String goodsNumber;

    /**
     * 商品码
     */
    private String goodsPcode69;

    /**
     * 规格
     */
    private String goodsSpecs;

    /**
     * 单位
     */
    private String unit;

    /**
     * 数量
     */
    private String num;

    /**
     * 备注
     */
    private String notes;

    /**
     * v1
     */
    private String v1;

    /**
     * 是否置顶
     */
    private String notTopping;
    /**
     * 部门id
     */
    private Long deptId;

    /**
     * 拆零封箱数
     */
    private String pieceNumber;
    
    /**
     * AGV机器人（1海康、2tusk）
     */
    private String agvRobot;

    /**
     * 下发数量
     */
    private String sendingNum;

    /**
     * 交付客户id
     */
    private Long deliverId;

    private String timeType;
    private String timeInterval;
    private String timeInterval2;

    private String[] goodsNames;
    private String[] getUnits;

    private String condition;
    private Long operateId;

    private String isStockNum;

    private String keyword;
    /**
     * 是否分配集货位
     */
    private String allocationStatus;

    private String agvStorageTask;

    private String agvNo;

    private Integer limitCnt;

    private String palletStorageAreaFlag;

    @Override
    public String checkParam() {
        return null;
    }

}
